package situ.autoweter.service.impl;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import situ.autoweter.service.SyAreaService;
import situ.autoweter.dao.SyAreaDao;
import situ.autoweter.common.Assist;
import situ.autoweter.entity.SyArea;
/**
 * SyArea的服务接口的实现类
 *
 * @author
 *
 */
@Service
public class SyAreaServiceImpl implements SyAreaService {
    private final Logger LOG = LogManager.getLogger(this.getClass());

    @Autowired
    private SyAreaDao syAreaDao;
    // TODO 当你看到这个方法时你应该创建一个工具类做通用的方法,定义自己的返回格式化
    private static final int C200 = 200;
    private static final int C412 = 412;
    public String resultFormat(int code, Object data) {
        JSONObject result = new JSONObject();
        result.put("code", code);
        if (data != null) {
            result.put("data", data);
        }
        return result.toJSONString();
    }

    @Override
    public List<SyArea> find(SyArea value) {
        //TODO这里可以做通过Assist做添加查询
        List<SyArea> result = syAreaDao.selectSyArea(null);
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行获取SyArea数据集-->结果:", result);
        }
        return result;
    }
    @Override
    public SyArea findOne(Object id) {
        if (id == null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("执行通过SyArea的id获得SyArea对象-->失败:id不能为空");
            }
            return null;
        }
        SyArea result = syAreaDao.selectSyAreaById(id);
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行通过SyArea的id获得SyArea对象-->结果:", result);
        }
        return result;
    }

    @Override
    public String saveNotNull(SyArea value) {
        if (value == null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("执行将SyArea中属性值不为null的数据保存到数据库-->失败:对象不能为空");
            }
            return resultFormat(C412, null);
        }
        int result = syAreaDao.insertNotNullSyArea(value);
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行将SyArea中属性值不为null的数据保存到数据库-->结果:", result);
        }
        return resultFormat(C200, result);
    }
    @Override
    public String updateNotNullById(SyArea value) {
        if (value == null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("执行通过SyArea的id更新SyArea中属性不为null的数据-->失败:对象为null");
            }
            return resultFormat(C412, null);
        }
        int result = syAreaDao.updateNotNullSyAreaById(value);
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行通过SyArea的id更新SyArea中属性不为null的数据-->结果:", result);
        }
        return resultFormat(C200, result);
    }

    @Override
    public String deleteById(Object id) {
        if (id == null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("执行通过SyArea的id删除SyArea-->失败:id不能为空");
            }
            return resultFormat(C412, null);
        }
        int result = syAreaDao.deleteSyAreaById(id);
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行通过SyArea的id删除SyArea-->结果:", result);
        }
        return resultFormat(C200, result);
    }
    @Override
    public List<SyArea> find_onetomany() {
        List<SyArea> result = syAreaDao.find_onetomany();
        if (LOG.isDebugEnabled()) {
            LOG.debug("执行获取SyArea数据集-->结果:", result);
        }
        return result;

    }


}